package com.atguigu.nio;

import java.nio.IntBuffer;

public class BasicBuffer {
    public static void main(String[] args) {

        //举例说明Buffer 的使用 (简单说明)
        //创建一个Buffer, 大小为 5, 即可以存放5个int
        IntBuffer intBuffer = IntBuffer.allocate(5);

        //向buffer 存放数据
        intBuffer.put(10);
        intBuffer.put(11);
        intBuffer.put(12);
        intBuffer.put(13);
        intBuffer.put(14);

//        for(int i = 0; i < intBuffer.capacity(); i++) {
//            intBuffer.put( i * 2);
//        }

        //如何从buffer读取数据
        //将buffer转换，读写切换(!!!)
        /*
        public final Buffer flip() {
        limit = position; //读数据不能超过5
        position = 0;
        mark = -1;
        return this;
    }
         */
        intBuffer.flip();
        // 打印容量
        System.out.println(intBuffer.capacity());
        //位置，下一个要被读写元素的索引，每次读写缓冲区数据时都会改变值 为下次读写做准备
        intBuffer.position(2);//1,2
        System.out.println(intBuffer.get());
        // 表示缓冲区当前终点，不能对缓冲区超过极限的位置进行读写
        intBuffer.limit(3);
        while (intBuffer.hasRemaining()) {
            System.out.println(intBuffer.get());
        }
    }
}
